Microsoft« DirectX« 9.0 SDK

 

Welcome

This is Microsoft's DirectX 9.0 Software Development Kit (SDK).  It contains all DirectX software required to create DirectX 9.0 compliant applications.

 

Major components include:  DirectX 9.0 system components (runtimes);  DirectX 9.0 Application Programming Interface (API) Documentation for each of the DirectX core areas (written for C++, C#, or Visual Basic .Net developers);  DirectX 9.0 headers & libraries;  Sample applications and source code;  miscellaneous tools and utilities.

 

After installing, those new to DirectX should start with the DirectX 9.0 documentation.  More seasoned developers may also want to view the "What's New" section.  Professional DirectX developers should refer to the "KNOWN ISSUES" section prior to raising concerns.

 


Contents:

WhatÆs New
Installation

RELEASE NOTES

SDK
Documentation
Managed DirectX
DirectX Audio (DirectSound« & DirectMusic«
Direct3D«
D3DX
DirectInput«
DirectPlay«
Broadcast Driver Architecture
DirectShow«
CD Layout


Compiler Support
Special Thanks
Roland SoundCanvans Sound Set for General MIDI and GS


What's New

There are many new and exciting features in all of the DirectX components.

One such feature is the addition of the high level shading language (HLSL) in the D3DX library.  This language provides a C-like language for creating and defining your vertex and pixel shaders.  The SDK has also added a new member to its core technology called Managed DirectX, a DirectPlay port for the PocketPC, and Windows XP parity on down-level operating systems for DirectShow and the DirectX audio APIs.

DirectShow also has a new Video Mixing Renderer (VMR9) which uses D3D9 surfaces and always renders video through the 3D pipeline, along with new and exciting samples.

DirectSound has support for sample rates above 192 kHz, improved effect support, and a low-latency sink for DirectMusic.  DirectMusic includes new features targeted toward sound designers, some new wizards, as well as an updated version of the authoring tool, DirectMusic Producer.  

DirectX 9.0 Sample Browser:  This is a new method of access samples, documentation and projects with DirectX 9.0.  With the Sample Browser, weÆve removed the lengthy Start Menu hierarchy to execute samples and replaced it with the Sample Browser.   From the browser you can execute samples, view documentation, load a sample project in Visual Studio (version 6 or .NET) & access DirectX utilities.

See the "New Features:" section for each of the component for additional information.

back to top


Installation

Info: http://support.installshield.com/kb/view.asp?pcode=ALL&articleid=Q105810

FIX : http://download.microsoft.com/download/msninvestor/Patch/1.0/WIN98/EN-US/mcrepair.EXE

Uninstall:

To uninstall, use "Add/Remove Programs" from the Control Panel to uninstall the InstallShield installations.

back to top

 


DirectX 9.0 SDK Notes

New features:

Issues:

back to top


Documentation

New Features:

Issues:

  1. In Control Panel, click the Add/Remove Programs icon.

  2. Highlight Microsoft DirectX 9.0 Documentation and then click Remove.

Requirements:

back to top


Managed DirectX

New features:

Issues:

voiceClient.Disconnect()

voiceClient.Dispose()

voiceServer.StopSession()

voiceServer.Dispose()

peerObject.Dispose()

 

Requirements:

back to top

DirectX Audio (DirectSound« & DirectMusic«)

New features:

Issues:

back to top


Direct3D

New features:

Many new interesting data formats, including:

  • Floating point z buffer formats

  • 16-bit floating point vertex and texture formats

  • 64-bit integer and 32-bit floating point texture formats

  • 10:10:10:2 pixel formats

  • Discardable depth and stencil buffers

  • Light-weight mipmap

  • two-sided stencils

Support for 2D/video/GDI features, including:

  • Support for video hardware acceleration

  • 2D operations, e.g., stretch, BLT, scissoring

  • GDI interoperability with GetDC method

New 3D rendering features, including

  • Displacement maps

  • Depth biasing

  • Antialiased lines

  • Constant blend factor

  • Separate alpha channel blending

  • Multisampling quality control parameter

  • Tesselation

  • Multi-Element Texture support

  • Multiple render targets

  • Autogenerated mipmaps

  • Spherical TexGen mode

Miscelanous:

  • Asynchronous notification

  • New vertex stream declarations

  • Multi-head support

  • Cleaned up interfaces to Swap Effects and Presentation Rates

  • Improved monitor refresh rate heuristics

  • Gamma correction

  • Color-converting windowed presentation

New vertex and pixel shader models for current and future hardware

  • Pixel shader models 2.0 and 3.0

  • Vertex shader models 2.0 and 3.0

Issues:

  • D3D9 interfaces are restricted to DirectX 7 level and above DDI drivers.

  • A limitation of the Windows2000 Kernel can result in some resources being freed while the resource is locked and being accessed by the application.

  • This results in the app writing to freed memory, causing an exception.

  • The problem only occurs with D3DPOOL_DEFAULT resources that the display driver chooses to place in system memory. When the device is put into a lost state (due to a mode change or ALT+TAB), all D3DPOOL_DEFAULT resources are freed. Direct3D has code to alias video memory resource pointers and redirect them to a dummy page, but D3DPOOL_DEFAULT system memory resources are not protected. The most common D3DPOOL_DEFAULT resources that get placed in system memory are Index Buffers, but some drivers may choose to place other resources in system memory as well. Apps can protect themselves by wrapping all resource accesses inside tryàcatch blocks.

  • When using the Direct3D software T&L pipeline (device created with D3DCREATE_SOFTWARE_VERTEXPROCESSING flag set or with D3DCREATE_MIXED_VERTEXPROCESSING flag and software vertex processing toggled on), then point sprite support is guaranteed. When using hardware vertex processing, some drivers may not support point sprites, but they must indicated this by setting d3dcaps->MaxPointSize to 1.0f.

  • On Windows98 and WindowsME, there are cases where a dialog box is not properly displayed on present after enabling GDI dialog boxes with SetDialogBoxMode. Applications can workaround this problem by calling Reset after each SetDialogBoxMode call.

     

Issues (Vertex/Pixel Shader):

a) Vertex semantics must be expressible in an FVF

b) The order of declarations should conform to order restrictions for vertex semantics within an FVF

 

Failure to follow these rules will result in asserts and debug error messages such as:

Direct3D9: Decl Validator: X1059: (Global Error) On a device that does not support ps_3_0, a transformed vertex declaration must specify elements in FVF order.

back to top


D3DX

New features:

  • DirectX 9 introduces a new high level shading language for shader programming.   This language provides the ability to more easily write shaders with  functions, arbitrary variable names, conditionals, and loops.

  • The shader compiler now supports the following profiles:  vs_1_1, vs_2_0,  ps_1_1, ps_1_2, ps_1_3, ps_1_4, ps_2_0, ps_2_sw.

  • A shader fragment linker has been added to facilitate the management and  generation of shaders,   The fragment linker links assembly or high level  shading language shader fragments together.  i.e.  to allow mixing and  matching of lighting types, skinning types, etc.

  • The Effect framework has undergone some exciting changes for DirectX9,  specifically the addition of the ID3DXEffectCompiler interface.  The  Effect compiler interface can be used for shader specialization.  i.e. marking a global variable as literal for a specific compile of the shader.

  • Added variable sharing between effects.  Variables in effects files declared with the  keyword "share" will be shared across all effects created with a given effect pool.

  • Patch support is included in the mesh library, including Adaptive tessellation.

  • A new animation subsystem and mesh hierarchy loader are now included.

  • The mesh library now supports arbitrary vertex declarations (single stream only). CloneMesh handles all data type conversions. i.e. FLOAT2 to FLOAT16_2,    D3DDECLTYPE_DEC3N...

  • Initializers of multi-dimensional arrays do not work correctly in this release of the High Level Shader Language (HLSL) compiler. This will be addressed in a future release of D3DX.

     

 Language Limitations:

  • Profile ps_1_4 does not yet support more than two phases for dependent lookups

  • In ps_1_1, ps_1_2, ps_1_3, the texdp3tex and tex3xm* instructions may emit incorrect sampler information in the constant table. To correct this problem, the user should manually bind the samplers to the appropriate texture stage.  

Issues:

  • This product includes software developed by the University of California, Berkeley.

  • It is recommended that you recompile the 3dsmax exporter prior to using it. 

  • The binaries for the Max X file exporter are no longer included in the distribution.  In order to use it, compile the plug-in with your version of Max.  This should ensure proper functionality of the exporter.

    back to top


DirectInput

New features:

This release of DirectInput has identical features to that of DirectX 8.1.  At this time there is no plan to add additional features to DirectInput in DirectX 9.0

back to top


DirectPlay

New features:

  • The DirectPlay application programming interfaces (APIs) are available for the Microsoft Windows« Powered Pocket PC 2002. See DirectPlay for Pocket PC 2002 in the help file for more information.

  • DirectPlay8 Bluetooth Service Provider for Pocket PC 2002 is available for devices using the Microsoft Windows CE Bluetooth stack.

  • The DPN_MSGID_SEND_COMPLETE message structure has new members that allow you to accurately determine the round-trip travel time of individual messages.

  • DirectPlay has a new service provider for network simulation. You can continue to use the dp8simui.exe interface tool or try the new IDP8SimControl methods to test applications under a variety of network conditions.

  • Applications can cancel all messages sent by a particular player using the DPNCANCEL_PLAYER_SENDS flag when calling IDirectPlay8Peer::CancelAsyncOperation(),IDirectPlay8Server::CancelAsyncOperation(), or IDirectPlay8Client::CancelAsyncOperation().

  • Players receive their local player identifier (ID) in the DPN_MSGID_CONNECT_COMPLETE message.

  • Hosts can prevent DirectPlay from servicing enumeration queries by setting the DPNSESSION_NOENUMS flag in the DPN_APPLICATION_DESC structure when calling IDirectPlay8Peer::Host() or IDirectPlay8Server::Host(). Additionally, servicing enumeration queries may be turned off and on with this flag by calling IDirectPlay8Peer::SetApplicationDesc() or IDirectPlay8Server::SetApplicationDesc().

  • Messages sent to a group with no players in it will now return DPNSUCCESS_NOPLAYERSINGROUP instead of DPNERR_GENERIC.

  • Optional packet signing for all DirectPlay8 traffic

  • Improved defense against connection spoofing

  • Added DPNCLOSE_IMMEDIATE flag to Close() for ungraceful immediate shut down

  • Added DPNINITIALIZE_HINT_LANSESSION to Initialize() to provide DirectPlay8 a hint about the underlying session infrastructure

  • Added packet coalescence via DPNSEND_COALESCE flag for Send()/SendTo()

  • Allow application tuning of the DirectPlay8 protocol via DPN_CAPS_EX structure provided to SetCaps() and retrieved from GetCaps()

  • Added the group ownerÆs context value to the DPNMSG_CREATE_GROUP structure

  • Calls to Host() without the DPNSESSION_NODPNSVR flag set in the DPN_APPLICATION_DESC structure will fail if dpnsvr.exe fails to start and will return DPNERR_DPNSVRNOTAVAILABLE

  • Improved DirectPlay8 protocol behavior for slightly ôlossyö links

  • Added new IDirectPlay8NATResolver interface and client side device address components DPNA_KEY_NAT_RESOLVER & DPNA_KEY_NAT_RESOLVER_USER_STRING to further improve NAT support.

  • Added new DPNA_KEY_TRAVERSALMODE device address component to control automated NAT and firewall traversal settings.

  • Added new IDirectPlay8ThreadPool interface for finer control over DirectPlay's threading, include a new DoWork threadless mode.

  • Added DPNGETLOCALHOSTADDRESSES_COMBINED flag for GetLocalHostAddresses() to combine all of the hosts addresses into a single address object.  This can be passed to EnumHosts or Connect so that all addresses will be tried simultaneously.

  • Added transparent IPv6 support to the TCP/IP service provider.  Applications should require no changes to support either IPv4 or IPv6 as long as they do not assume that the DPNA_KEY_HOSTNAME component is in IPv4 decimal dotted notation (nnn.nnn.nnn.nnn).

Issues:

  • To use DirectPlay Voice in full duplex mode, we recommend that you update to the latest drivers for your audio device. Some older drivers do notprovide reliable full duplex performance.

Notes on DirectPlay for Pocket PC:

  • In order to conserve memory usage, the retail binaries for the PocketPC version of DirectPlay do not contain parameter validation.  During development, your application should make use of the debug binaries in order to check for parameter usage errors.

Notes on IDirectPlay8ThreadPool

 

  • DirectPlay Voice does not support the shared thread pool.  Using the IDirectPlay8ThreadPool::SetThreadCount method to alter the number of threads or put DirectPlay in threadless "DoWork" mode will not affect voice message handler callbacks.  You should be prepared to handle voice callbacks on multiple threads, and on threads that have not generated a DPN_MSGID_CREATE_THREAD message, regardless of IDirectPlay8ThreadPool settings.

  •  The modem and serial service providers do not support the shared thread pool.  If you use these service providers, you should be prepared to handle callbacks on multiple threads, and on threads that have not generated a DPN_MSGID_CREATE_THREAD message, regardless of IDirectPlay8ThreadPool settings.  You can identify the service providers that support the thread pool, such as TCP/IP and IPX, by looking for the DPNSPCAPS_SUPPORTSTHREADPOOL flag returned by IDirectPlay8Peer::GetSPCaps, IDirectPlay8Client::GetSPCaps, or IDirectPlay8Server::GetSPCaps

Notes on NATs (Network Address Translators):

  • When performing the first operation over the TCP/IP service provider, DirectPlay attempts to detect a Network Address Translator (NAT) or firewall. This increases the time that the Connect(), Host(), or EnumHosts()|calls take. If you are sure that your machine is not behind a NAT or|firewall, you can set the new DPNA_KEY_TRAVERSALMODE device address component to DPNA_TRAVERSALMODE_NONE to avoid this detection process.

  • When you specify a port in your device address, the default DirectPlay traversal mode DPNA_TRAVERSALMODE_PORTREQUIRED maps the same port number externally on the Universal Plug and Play (UPnP) compatible NAT.  If this port is already in use, then the Connect(), Host(), or EnumHosts() could fail with DPNERR_INVALIDDEVICEADDRESS.  In some cases, your application may not require that the public port be the same as the local port, or mapped at all.  You can use DPNA_TRAVERSALMODE_NONE or DPNA_TRAVERSALMODE_PORTRECOMMENDED to alter this behavior.

Notes DirectPlay Voice codecs via Windows ACM (Audio Compression Manager):

  • DirectPlay Voice uses the following codecs via the Windows ACM: - Microsoft ADPCM - Microsoft GSM - DSP Group Truespeech

  • Installation of these codecs with Windows is optional. If they are not installed, then one or more of the compression types in DirectPlay Voice will not function. If the application attempts to use a compression type that is not functional due to a missing ACM codec, it will receive the DVERR_COMPRESSIONNOTSUPPORTED return code.

  • On Windows 2000, the user can install these codecs through the Add/Remove Hardware wizard. The user should select "Add/Troubleshoot a device". When a list of hardware is presented, the user should select "Add a new device", then on the next page select "No, I want to select the hardware from a list". This will bring up a list of hardware. Select "Sound, video, and game controllers". The "Audio Codecs" item is listed under "(Standard system devices)".

  • On Windows 9x, the user can install these codecs through the Add New Hardware wizard. When prompted, the user should select "No, I want to select the hardware from a list". In the list of device types, codecs are listed under "Sound video and game controllers". The codecs are listed under two manufacturers. The ADPCM and GSM codecs are listed under "Microsoft Audio Codecs" and the Truespeech codec is listed under "DSP Group".

back to top


Broadcast Driver Architecture

New Features:

  • Functional parity for down level systems (pre-Windows XP)

  • Addition of support for DVB-T and DVB-C broadcast standards

Issues:

  • Pin connections with mpe/slip with ipsink may fail with a ôfilters cannot agree on a connectionö error if NO tuner is installed post û DX9 installation. This behavior is exactly as seen in XP. This may be due to the TV tuner driver not being properly installed. Automatic loading of BDA NDIS miniport is restricted by design.  By Right clicking and installing the bda.inf and rebooting the machine circumvents this problem.

Broadcast IP Data Reception under Windows 2000:

  • After rebooting a Windows 2000 system with a BDA receiver card installed, the BDA NDIS IP NIC is not immediately active.  It becomes active only when an application inserts the BDA IPSink filter into a graph and connectsits input pin.  Once activated by connecting the IPSink filter's input pin, it takes 20 to 30 seconds for the BDA NDIS IP NIC to be assigned an IP address.  The address assigned will be a Net 10 address.  Once activated, the BDA NDIS IP NIC will remain active until the system is rebooted.

  • There may be some applications that use the BDA NDIS IP NIC as the default LAN adapter.  These apps will fail if the BDA NDIS IP NIC is active.  To de-activate the BDA NDIS IP NIC, reboot the system and do not run a TV graph or application.

  • When viewing a BDA Network provider property page with GraphEdit, you cannot enter a -1 value.  As a workaround, enter 0 and click the down arrow to set the value to -1.

  • Pin connections with mpe/slip with ipsink may fail if NO tuner is installed post-DX8.1 installation.  This behavior is exactly as seen in Windows XP.  This may be due to the TV tuner driver not being properly installed. Automatic loading of BDA NDIS miniport is restricted by design. The solution is to right click and install the bda.inf, followed by a machine reboot.

back to top


DirectShow

New features:

  • Video Mixing Renderer Filter 9 (VMR-9). - This new, redistributable rendering filter is similar in concept and design to the VMR that is available for Microsoft Windows XP Home Edition and Windows XP Professional.  The VMR-9 is more powerful than the original VMR (now called "VMR-7") because it is fully compatible with the DirectX 9.0 graphics capabilities and it offers improved support for deinterlacing and ProcAmp control (brightness, contrast, hue, and saturation).

  • New deinterlacing support in the DV Video Decoder filter. The DV Decoder filter now supports interlaced output, as well as deinterlaced output. Earlier versions of the decoder always deinterlace the video.  With the new version, the interlaced video can be preserved and saved to file, or the video can be deinterlaced by the VMR, for improved rendering quality.

  • New deinterlacing support in DirectX Video Acceleration.

  • AVStream driver development and runtime support on all platforms prior to Windows XP has been improved for close functional parity with Windows XP. A few AVStream and core Kernel Streaming behavioral differences still exist that are documented in the SDK.

  • New encoder application programming interface (API) specification. The Encoder API defines a standard, format-neutral way in which software or hardware encoders can communicate with applications and device drivers. IGetCapabilitiesKey is a new interface that filters can implement in order to enable applications to query for the filter's capabilities.

  •  MPEG-2 Sections and Tables Filter. This new filter enables an application to get PSI tables from an MPEG-2 transport stream.

  • Microsoft TV Technologies now supports DVB-T (terrestrial) and DVB-C (cable), in addition to DVB-S (satellite). For more information, see the SDK documentation.

  • The Analog TV Tuner filter now supports adding new channel frequencies via the registry.  This feature extends the existing mechanism for adding channel frequency overrides.   For more information, see International Analog TV Tuning in the SDK.

  • DirectShow Editing Services (DES) now supports plug-in video resizing filters.  For more information, see Providing a Custom Video Resizer in the SDK.

  • The DVD Graph Builder enables applications to use the VMR-9 through the IDvdGraphBuilder::RenderDvdVideoVolume method.  The DVD Navigator now supports playback of audio during fast forward; users can now watch a movie at speeds higher than 1x without raising the pitch of the audio track, if the decoder supports this feature.  The DVD navigator now provides faster DVD menu navigation.

  • Video renderer no longer displays frame counters on debug builds.

SDK Updates

  • Significant enhancements to the GraphEdit utility, including Windows Media Certification (dekeying of non-DRM WM graphs), Filter Favorites menu, improved connect/disconnect from remote graphs, save/restore options, frame stepping, and color coding of connected filters.  XGR files are no longer supported by GraphEdit.

  • Sample source code has been improved to enhance security, reliability,  and readability.  Support for Visual Studio.NET has also been added (VC.NET projects, solutions, etc.)

  • Managed code for audio and video file playback. The Microsoft.DirectX.AudioVideoPlayback managed code namespace provides playback and simple control of audio and video media. For more information, refer to the DirectX documentation for the managed DirectX components. 

  • Numerous bug fixes and refinements for SDK samples and tools

  • New Unicode Debug/Release build targets for Visual C++ 6.0 and Visual Studio.NET projects

  • New and revised content in the SDK documentation

  • New ProfileEnum tool (in Bin\DXUtils) lists the Windows Media system profiles that are available for use on your system.  This tool is helpful if you are creating Windows Media files (ASF,WMA,WMV) through DirectShow interfaces.

  • The AMCap sample application now supports MPEG-2 program stream input, for example from analog TV Tuners that stream MPEG-2 content. A third-party DirectShow-compatible MPEG-2 decoder is still required to decode the streams.

  • The PlayCapMoniker sample demonstrates an alternate method (AddSourceFilter()) because using RenderFile() with monikers is no longer supported.

New DirectShow samples:

  • Audiobox: Audio-only media player, similar to the Jukebox sample.  It supports Favorites and playback of Windows Media Audio and MP3 files.

  • CaptureTex: Blends Texture3D and PlayCap to display incoming live video on a rotating Direct3D surface

  • CaptureTex9: Extends the CaptureTex sample to render live incoming video onto a Direct3D9 surface (a waving flag).

  • CompressView: Demonstrates how to recompress an audio or video file using a different compression type.

  • DSNetwork Filters: Implements an IP source filter and an IP rendering filter.  This filter set allows you to transmit/receive MPEG-2 data on a network.

  • GrabBitmaps: Shows how to grab bitmaps from a video stream.

  • Metronome Filter: Sample filter that shows how to implement a reference clock.

  • PlayDVD: A simple windowed DVD player based on the PlayWnd sample.

  • PlayWndASF: Added limited DRM support to the previous PlayWndASF sample.

  • PSIParser Filter: Shows how to retrieve program information from an MPEG-2 transport stream.

  • PushSource Filters: Set of three source filters that output a single bitmap, a series of bitmaps, or a live desktop capture video stream.

  • RenderLog: Creates a text log of DirectShow's progress while rendering a media file. If you receive an error when you call IGraphBuilder::RenderFile,  you can use this tool to create and view the log.

  • RGBFilters: Set of several sample source and transform filters useful for testing.

  • Texture3D9: Extends the Texture3D sample to play video on a DirectX 9 texture surface, utilizing Direct3D9 features for more efficient rendering.

  • TransViewer: Enables you to preview all of the DirectShow Editing Services transitions installed on your system.

New VMR samples that demonstrate various features of the VMR-7:

  • Blender: Demonstrates how to mix, blend, and manipulate two video streams.

  • MonitorInfo: Displays simple information about the available monitors (using a VMR interface).

  • Pip: Demonstrates how to create picture-in-picture effects using the VMR.

  • Text: Displays alpha-blended text over running video.

  • Ticker: Extends the Text sample to draw horizontally scrolling text across the bottom of the video.  You can scroll text as a static bitmap or as a dynamically generated bitmap created from user input.

  • VMRMulti: Plays multiple video files over an animated Direct3D background.  Each video stream is individually seekable.

  • VMRXclBasic: Shows how to play video in full-screen exclusive mode.

  • Watermark: Places an alpha-blended bitmap over the video and adds effects (alpha strobe, scrolling, bitmap animation).

  • Windowless: Demonstrates basic playback using the VMR's Windowless mode.

New VMR9 samples to demonstrate use of VMR9 on all DirectX9 systems:

  • VMR-9 versions of eight VMR-7 samples: Blender9, MonitorInfo9, Pip9, Text9, Ticker9, VMRPlayer9, Watermark9, and Windowless9

  • VMR9Allocator: Renders video onto a rotating Direct3D surface

  • BitmapMix: Uses the VMR9 to render video onto a Direct3D9 surface while blending a bitmap that can be moved via mouse input

  • MultiVMR9: Demonstrates using a custom VMR9 Allocator-Presenter in a multi-graph environment.  There are three folders in this project, including a support DLL, a MultiPlayer sample, and a 3D GamePlayer sample that integrates video playback into a Direct3D game environment.

Removed Samples:

JukeboxASF has been removed.  Its Windows Media support has been merged into the Jukebox sample.

Sample media files:

The video codec used in highway.avi and ruby.avi has been changed to Cinepak.  This was done to enable playback on OEM and integrated media installations of Windows XP SP1, which no longer ships the Indeo codecs.

Issues:

  • Some of the DirectShow samples, such as XTLTest, have a runtime dependency on files redistributed in Windows Media Player 7 and newer releases.  If a generic runtime error or the message "A required .DLL file, WMVCORE.DLL, was not found." occurs, please check and update the WMP version present.  Note that these files are available for redistribution via the Windows Media Format SDK.

  • A modification was made in the MPEG-1 audio decoder that no longer allows a dynamic change in the MPEG audio layer.

  • Some video card drivers incorrectly advertise the D3DPTEXTURECAPS_NONPOW2CONDITIONALflag, which indicates that the driver supports non-power-of-2 textures. Because of this driver bug, you may see garbled video data in the place of an alpha-blended bitmap.  This will be noticeable when running the Text or TickerVMR samples in the Samples\DirectShow\bin folder. We hope that this vendor driver issue will be resolved soon.

  • The DirectShow Visual Basic 6.0 samples are located in the Extras folder or available as a separate download.  There are no new Visual Basic or Visual Basic .NET samples available for DirectX 9.0.

  • There is a known problem with the MP3 decoder filter when used with Audio Effects DMOs.  If you add an audio effect DMO (like WavesReverb, Echo,or Flange) to an existing MP3 filter graph, the audio could be played back at double speed.  The problem would occur whenever the MP3 decoder is connected to a downstream audio effect dmo (via the dmo filter wrapper) that offers a default audio input type which doesn't match the native format of the uncompressed MP3 stream.  For example, if you render a 22kHz MP3 file and add a DMO Audio effect, the MP3 filter could misinterpret the input type as being 44kHz when it is actually 22kHz.  This would not be a problem for 44kHz MP3 files.

  • The WavesReverb DMO will only accept 16-bit audio input.  If you attempt to connect the WavesReverb DMO to an 8-bit audio source, the connection will fail.

  • The sample XTL files were updated in DirectX 8.1 to reflect a change in the DES XML parser on Windows XP.  XML attributes must now be specified in *lowercase*.  Mixed-case attributes will fail on Windows XP.

  • The latest WM ASF Reader and WM ASF Writer filters, and the DMO Wrapper filter, are shipped in the Windows Media Format 9 Series SDK.  Future updates to this binary component, qasf.dll, will be done through Windows Media releases only. The DirectShow SDK  ships versions of these filters locked at the DirectX 8.1 level of functionality.

  • Both VMRXcl and VMRXclBasic samples requires a video adapter than can be set to 640x480 resolution at 32-bit display depth. Some older video cards support only 16-bit and 24-bit resolutions, which would prevent this sample from running properly.

  • The way that DirectShow Editing Services (DES) parses numbers in XTL files is not entirely consistent.

The following attributes must be integers that do not contain a period or comma:

- bitdepth

- buffering

- height

- samplingrate

- stream

- userid

- width

Correct:

<group type="video" width="1024" height="1024">

 

Incorrect:

<group type="video" width="1,024" height="1,024">

 

The following time-based attributes must use a period between the seconds and the frame number, regardless of user locale:

- cutpoint

- framerate

- mlength

- mstart

- mstop

- start

- stop

- time

- tlstart

- tlstop

 

Correct:

<clip src="sample.avi" start="1:00.30">

 

Incorrect:

<clip src="sample.avi" start="1:00,30">

All parameter values within a <param> element must use periods or commas depending on the user's locale.

Examples:

English: <param name="Vol" value="0.050000">

German: <param name="Vol" value="0,050000">

DirectShow Samples Build Notes:

To enable Windows XP VMR features, set the Windows version to 0x501 (the Windows XP version) in your Visual C++ project files.

  • Application development using the DirectShow base classes libraries requires installation of the DirectShow samples.  The source code for the base classes is included as a sample project in the Samples\C++\DirectShow\BaseClassesdirectory.  You must compile these base classes to generate strmbase.lib and strmbasd.lib, which are no longer installed as library files.   If you are linking with strmbase.lib or strmbasd.lib with your own application, be sure to build and link with the updated DirectX 9 libraries (instead of the older libraries that may be installed with Visual Studio or the Microsoft Platform SDK).

  • You will be required to build the BaseClasses libraries before any sample that depends on them can be built.  Please review the Readme.Txt file in the DirectShow samples root directory for more information on building the samples.

  • The samples included with the SDK are configured to compile and link with the sample BaseClasses libraries, which are generated by building the BaseClasses sample project.  Further build instructions are provided in:    <DXSDK Install Folder>\Samples\C++\DirectShow\readme.txt.

  • The DirectShow IDL files are installed in the SDK \include\DShowIDL directory.

  • The <streams.h> header file, along with many other DirectShow-specific header files, is located in the DirectShow samples BaseClasses directory, which includes the BaseClasses source code and header files.  You must add the BaseClasses directory to the beginning of your project's include path settings in order for Visual C++ to find all of the updated header files.

  • If you have the SDK on CD-ROM, the Extras\DirectShow\Media directory contains additional media that can be used with DirectShow and the DirectShowEditing Services (DES) interfaces.  We have included DV-encoded AVI videos, larger MPEG videos, and higher-quality JPEG images.  Since the DV files are very large, you should copy them to your hard disk before playing them to ensure the best performance.

  • DirectShow MFC samples wonÆt build with the Unicode settings under Visual Studio 6 unless the MFC Unicode libraries (MFC42U.LIB and MFC42UD.LIB) are installed on the system.  These libraries are not installed by default with Visual Studio 6. 

To add them:

1)         Select Add/Remove Programs from the control panel.

2)         Highlight Visual Studio 6.

3)         Push the ôChange/Removeö button.  This will start the setup application for Visual Studio 6.

4)         Push the ôAdd/Removeö button.

5)         Highlight Visual Studio C++ 6.  Push the ôChange Optionàö button.

6)         Highlight ôVC++ MFC Libraries and Templatesö.  Push the ôChange Optionàö button.

7)         Highlight ôMS Foundation Class Librariesö.  Push the ôChange Optionàö button.

8)         Check ôShared Libraries for Unicodeö.  Push the ôOKö button.

back to top


Compiler Support

  • All DirectX 9.0 SDK samples are developed and compiled with Visual Studio 7.0.  The DirectX 9.0 SDK samples are optimized to compile with Visual Studio 7.0, and we have provided Visual Studio 6.0 DSP files for your convenience. 

  • The DirectX SDK no longer supports using Visual Studio 5.0. While this may work, any issues with using Visual Studio 5.0 and the DirectX 9.0 SDK will not be addressed in this release or future releases. The DirectX 8.0a SDK supports VC 5.0 ( with the SP3 linker fix ) and Windows 95, so this may be an option for some developers.

back to top


CD Layout:

The following is a brief description of the directories found on the DirectX 9.0 SDK CD.  Depending on options specified during installation, some of these directories can be installed on your hard drive.

\Bin

\DXUtils

High level DirectX applications & tools.  All can be accessed from the SDK sample browser.

\DirectX extensions for Visual Studio

Microsoft« Visual Studio« supports debugging assembly level and high-level language vertex and pixel shaders.

\Visual Studio 6.0 Wizards

This directory contains the application wizards that can be plugged into Microsoft Visual C++ 6.0. This wizards are installed by the SDK.

  • Audio Effects DMO Wizard (AEDMOWiz.awx, AEDMOWiz.hlp, and AEDMOWiz.cnt): simplifies the process of creating a custom Audio Effects DMO.  It will create a ready-to-compile Visual Studio 6.0 project containing C++ code that handles the basic COM support and DLL entry points.  In addition, the wizard will generate the DMO's interface and implementation class with basic services already implemented for you.  Since the project is ready to be compiled into a DLL, all you have to do is complete the function that actually processes the audio samples. 

  • DirectMusicTool Wizard (DMToolWizard.awx, DMToolWizard.hlp, DMToolWizard.cnt): simplifies the process of creating a custom DirectMusic tool. It will create a ready-to-compile project containing C++ code that handles the basic COM support and DLL entry points. In addition, the wizard will generate the tool's interface and implementation class with basic services already implemented for you. Since the project is ready to be compiled into a DLL, all you have to do is complete the function that actually processes the DirectMusic messages (DMUS_PMSG). 

  • AppWizard (AppWiz9.awx): creates a minimal C++ template application that optionally includes integrated Direct3D, DirectInput, DirectMusic, DirectSound, and DirectPlay support. 

To make the wizard available manually, copy it to the \Common\MSDev98\Template folder of your Visual Studio installation.

      To use AppWizard:

           1. Run VC6 or VS7

           2. Click "New".  Under the "New Projects" tab, select the

               "DirectX AppWizard" wizard.

           3. Type a project name and click OK.

           4. Choose wizard options, and click finish when done.

           5. Build and run the new project.

\Visual Studio 7.0 Wizards

This directory contains the application wizards that can be plugged into Microsoft Visual Studio 7.0. They are all installed by the DirectX 9.0 SDK

\Doc

Contains reference documentation for the DirectX 9.0 APIs.  This Documentation must be viewed with Windows HTMLHelp.  Note:  The HTMLHelp viewer requires a minimum installation of Internet Explorer 5.0 (IE5).  IE5 can be found at http://www.microsoft.com/windows/ie/default.htm.

\Include

Contains DirectX 9.0 include files for DirectX core components.

\Lib

Contains DirectX 9.0 library files for DirectX core components.

\License

Text versions of the DirectX SDK, End User License Agreements and the Redistributable License Agreement.

\Redist

Redistributable versions of the DirectX 9.0 Runtime.

\Samples

Contains all sample code and sample binaries.   Most samples can be accessed directly by  the SDK Sample Browser located on the Start menu when installed via the downloaded InstallShield setup.

\SDKDev

This directory contains the runtime installs that are installed with  the SDK.  They are English only and contain both debug and retail DirectX 9.0 system components that can be "switched" between retail and debug without re-installing.  For the DirectX 9.0 components, retail or debug can be switched via the DirectX Control Panel.  The \retail folder contains the setup that will install non-DirectX 9.0 retail components while the \debug folder will install all debug components.  Both install DX9.0 retail and debug components; These are the only components that can be "switched". 

\Essentials (Available on CD or as separate download)

\DirectMusic Producer

DirectMusic Producer is the authoring tool for DirectMusic.  It allows composers and sound designers to use the interactive and variable resources of DirectMusic along with the consistent sound performance of DLS.  DirectX Audio Scripting can also be authored and tested within Producer.  The DirectMusic Producer setup program and all files are located here.

\DirectMusic Style Library

The Style Library contains 187 styles representing varying genres, 27 chordmaps, and a basic styleplayer to audition them.  IMPORTANT:  the StylePlayer.exe as well as all the styles (.sty) and chordmaps (.cdm) should be copied to a local machine and placed in the same directory (otherwise the app will not find the content files).  See StylePlayer.txt for more detailed information. 

 \Extras    (Available on CD or as separate downloads)

\Direct3D

Skinning exporter tools

\DirectShow

Contains the DVDBoilerplate and additional media that can be used with DirectShow and the DirectShow Editing Services (DES) interfaces

\Documentation

Contains complete DirectX 9.0 Japanese documentation.  It also includes DirectX 7 HTMLHelp Documentation for English and Japanese, DirectX 7 Documentation in Microsoft Word format (English only) and DirectX 8 HTMLHelp Documentation for Japanese.

\Symbols

Contains directories of DirectX 9.0 symbol files for Windows 9x, Windows 2000 and Windows XP (retail and debug for each).

\POCKETPC

Contains the DirectPlay binaries, samples, and symbols (retail/debug) for the Pocket PC

back to top


Special Thanks

 

Marlin Studios

 

Textures used in the Billboard sample, tree02S.tga, tree01S.tga & tree35S.tga, are provided courtesy of Marlin Studios ( http://www.marlinstudios.com).  They are provided for use with this sample only and cannot be distributed with any application without prior written consent. 

 

Viewpoint Digital, Inc.

 

The model used by the Visual Basic AutoParts sample, engine1.x, is provided courtesy of Viewpoint Digital, Inc. (http://www.viewpoint.com).  It is provided for use with this sample only and cannot be distributed with any application without prior written consent.  V6 Engine Model copyright 1999 Viewpoint Digital, Inc..

 

3DCAFE and Platinum Pictures

 

The model in the Dolphin samples, Dolphin.x, is derived from the model files (dolphins.zip) provided courtesy of 3DCAFE and Platinum Pictures (http://www.3dcafe.com/).  It is provided for use with this sample only.  For further terms of use please visit the 3DCAFE site or contact 3DCAFE.

back to top


ROLAND SoundCanvas Sound Set For General MIDI And GS Format

 

The Roland SoundCanvas Sound Set includes the necessary sounds to make a complete General MIDI compatible sound set.  It also includes additional sounds necessary to make a complete GS Format compatible sound set.

 

WHAT IS THE GS FORMAT?

 

The GS Format is a standardized set of specifications for sound sources that defines the manner in which multitimbral sound generating devices will respond to MIDI messages.  The GS Format also complies with General MIDI System Level 1.

 

The GS Format also defines a number of other details over and above the features of General MIDI.  These include unique specifications for sound and functions available for tone editing, effects, and other specifications concerning the manner in which sound sources will respond to MIDI messages.  Any device that is equipped with GS Format sound sources can faithfully reproduce both General MIDI sound recordings and GS Format MIDI sound recordings.

 

HOW TO CONTACT ROLAND:

Roland Corporation U.S.

7200 Dominion Circle

Los Angeles, CA  90040-3696

Phone:  (323) 890-3700

Fax:    (323) 890-3701

COPYRIGHT NOTICE AND LICENSE LIMITATIONS

 

Roland GS Sound Set/Microsoft (P) 1996 Roland Corporation U.S.

 

The Roland GS Sound Set/Microsoft, the "Sample Set", incorporates the Roland SoundCanvas Sound Set. Roland Corporation U.S. owns the Sample Set and all copyrights pertaining thereto and has licensed the Sample Set for use solely on Microsoft operating system products and Microsoft Application Products. 

 

Roland reserves all rights to the Sample Set not expressly granted by Roland Corporation U.S. or by Microsoft under the terms of Microsoft's End User License Agreement.

 

The Sample Set may only be redistributed with your software application as a part of a Microsoft operating system product installation and under the terms of Microsoft's End User License Agreement. The Sample Set may not be separated from the Microsoft operating system product; the Sample Set may only be installed by the Microsoft installation procedure for the associated Microsoft operating system product or for an associated software development kit.  All other uses of the Sample Set require a separate written license from Roland Corporation U.S.

 

The Sample Set may not be used, copied or redistributed in hardware ROM or similar technology of any device without prior express written permission from an authorized representative of Roland Corporation U.S. The Sample Set may not be redistributed with any Musical Instrument . A "Musical Instrument" is any device that is capable of generating musical sounds without being directly connected to a computer with a licensed Microsoft operating system product. You may not modify the Sample Set under any circumstances.

back to top